import os

from utils.logging_tool.recordlog import logs


def remove_file(filepath, endlst):
    """
    删除文件
    :param filepath: 路径
    :param endlst: 删除的后缀，例如：['json','txt','attach']
    :return:
    """
    try:
        if os.path.exists(filepath):
            # 使用 listdir 获取特定文件夹中所有文件的列表,filepath 是包含所有文件的文件夹的路径
            dir_lst_files = os.listdir(filepath)
            # 遍历给定文件夹中的文件
            for file_name in dir_lst_files:
                # 路径+ 文件名（要删除的文件的完整路径）
                fpath = filepath + '\\' + file_name
                # endswith 判断字符串是否以指定后缀结尾
                if isinstance(endlst, list):
                    for ft in endlst:
                        if file_name.endswith(ft):
                            # remove删除文件，此方法无法删除目录
                            os.remove(fpath)
                            logs.info(f'{fpath}文件删除成功')

                else:
                    raise TypeError('file Type error,must is list')
        else:
            os.makedirs(filepath)
    except Exception as e:
        logs.error(e)


def remove_directory(path):
    """
    删除文件目录
    :param path:
    :return:
    """
    try:
        if os.path.exists(path):
            os.remove(path)
            logs.info(f'{path}文件删除成功')
    except Exception as e:
        logs.error(e)
